chore(release): 0.4.0#279
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
9e9ac77 to
576d224
Compare
52c0c6e to
1346f88
Compare
1346f88 to
1319d40
Compare
1319d40 to
7c1f13e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The next claudecode.nvim release. Merging this PR creates the release tag and GitHub Release, then starts Communique GitHub Release note generation.
[0.4.0] - 2026-06-23
Added
:ClaudeCodeSendText {text}command andrequire("claudecode.terminal").send_to_terminal(text, opts)to send arbitrary text to the open Claude terminal as if typed at the prompt (submitting by default;:ClaudeCodeSendText!inserts without submitting). Multi-line text is sent via bracketed paste. Works with the in-editornative/snacksproviders only. (#272, #197):checkhealth claudecodehealth check that verifies Neovim version,setup(), the Claude CLI, the terminal provider, the WebSocket server, the lock file, and live client connection. (#275):ClaudeCodeCloseAllDiffscommand to close all pending Claude diffs at once; already-accepted-but-unwritten diffs are left intact so saved edits are never discarded. (#261, #248)diff_opts.layout = "unified": a VS Code-style unified diff rendered in a single buffer with interleaved deleted (red/strikethrough) and added (green) lines, as a compact alternative to"vertical"/"horizontal". Requires Neovim >= 0.9.0;ClaudeCodeInlineDiffAdd/Delete/AddSign/DeleteSignhighlight groups are customizable. (#195, #295)terminal.auto_insertoption (defaulttrue) controlling whether the Claude terminal auto-enters insert/terminal mode on focus; setauto_insert = falseto preserve your Normal-mode scroll position. Applies to thenative/snacksproviders and the new-tab diff terminal. (#233)terminal.diff_split_width_percentage(optional terminal width while a diff is open),diff_opts.auto_resize_terminal(defaulttrue; setfalseto own the layout), andUserautocmdsClaudeCodeDiffOpened/ClaudeCodeDiffClosedcarrying data payloads. (#270)User ClaudeCodeSendCompleteautocmd, fired once per file when a send is accepted while Claude is connected, withdata = { file_path, start_line, end_line, context }(0-indexed lines). Lets you focus a Claude session running outside Neovim (provider = "none"/"external"). (#265, #228)<leader>asin netrw buffers adds marked or cursor files to Claude's context. (#62):ClaudeCodeTreeAdd/:ClaudeCodeSend: with a snacks picker list focused, the selected/highlighted file(s) are added to Claude's context. (#269, #192)Claude Opus (Latest),Claude Sonnet (Latest),Claude Haiku (Latest)), 1M-context variants (opus[1m]/sonnet[1m]), andDefault (account recommended). (#256)Fixed
0600permissions in a0700directory (previously world-readable0644); handshake auth comparison is constant-time. (#259)EADDRINUSE: port selection is re-seeded per process and the server retries the next candidate port on bind/listen failure. (#284, #283)closeAllDiffTabsis now scoped to claudecode's own diffs and no longer destroys an open diffview.nvim, fugitive, or native:diffsplitreview;openFile/openDiffno longer reuse a window that is in diff mode. (#290, #277)localhost,127.0.0.1,::1) fromno_proxy/NO_PROXY, so a configured proxy no longer tunnels Claude'sws://127.0.0.1IDE connection and times out @ mentions. (#268, #70):q/:close/<C-w>c/closing the tab now resolves it as rejected via a newWinClosedautocmd. (#266)/ideexternal flow). (#267, #246)openDiffare now auto-closed when the client that opened them disconnects or the integration stops, instead of lingering forever. (#261, #248)nvim_win_set_config({hide=...})and recreating splits like the native provider (float fix requires Neovim >= 0.10). (#271)vim.pasteshim controlled byterminal.fix_streamed_paste("auto"by default; no-op on Neovim >= 0.12.2). (#252)diffoffbefore Neovim's post-write redraw. (#224)diff_opts.vertical_split/open_in_current_taboptions now apply correctly (they were silently ignored due to merge order). (#142)file://URI. (#163)getDiagnosticsreturns grouped URI-based payloads with editor-native ranges and severity names; the unsupported resources capability is no longer advertised; background file opens preserve focus and serialize JSON compactly. (#274)BufEnter, so switching buffers without moving the cursor updates Claude. (#159)provider = "none") terminals now matches by substring, since Neovim rewrites buffer names to paths/URLs. (#160)ClaudeCodeSendnow classifies tree/explorer buffers by filetype only, so ordinary files whose path containsneo-tree/NvimTreeare no longer misrouted. (#292, #289)$in file paths for:ClaudeCodeAddand theopenFiletool. (#286)opus[1m]; the command is now passed as an argv list with no shell. (#256)keep_terminal_focusnow works for floating Claude terminals (e.g. Snacksposition="float"). (#178)open_in_new_tabdiff setup errors. (#175, #264)noneis now wiped on diff open. (#223)Changed
"inline"(added in feat(diff): add layout = "inline" for VS Code-style unified diff #195, never released) was renamed to"unified"; the old value is rejected. (#295)Maintained by the release-please workflow. CHANGELOG.md and the release PR body are regenerated by Communique on every push to main, so manual edits to this PR are overwritten.